@echo off
chcp 65001 >nul
REM jshERP-web Docker 部署脚本 (Windows)
REM 使用方法: deploy.bat [dev|prod]
REM 注意: 此脚本需要在 deployment 目录中执行

setlocal enabledelayedexpansion

REM 获取脚本所在目录
set SCRIPT_DIR=%~dp0
cd /d "%SCRIPT_DIR%"

REM 获取部署环境，默认为 dev
set ENV=%1
if "%ENV%"=="" set ENV=dev

echo ========================================
echo jshERP-web Docker 部署脚本
echo 部署环境: %ENV%
echo 工作目录: %SCRIPT_DIR%
echo ========================================

REM 检查 Docker 是否安装
where docker >nul 2>&1
if %errorlevel% neq 0 (
    echo 错误: Docker 未安装，请先安装 Docker Desktop
    pause
    exit /b 1
)

REM 检查 Docker Compose 是否安装
where docker-compose >nul 2>&1
if %errorlevel% neq 0 (
    echo 错误: Docker Compose 未安装，请先安装 Docker Compose
    pause
    exit /b 1
)

REM 停止并删除旧容器
echo 停止并删除旧容器...
docker-compose down 2>nul

REM 根据环境选择配置文件
if "%ENV%"=="prod" (
    set COMPOSE_FILE=docker-compose.prod.yml
    echo 使用生产环境配置
) else (
    set COMPOSE_FILE=docker-compose.yml
    echo 使用开发环境配置
)

REM 构建并启动容器
echo 构建 Docker 镜像...
docker-compose -f %COMPOSE_FILE% build --no-cache

if %errorlevel% neq 0 (
    echo 构建失败！
    pause
    exit /b 1
)

echo 启动容器...
docker-compose -f %COMPOSE_FILE% up -d

if %errorlevel% neq 0 (
    echo 启动失败！
    pause
    exit /b 1
)

REM 等待容器启动
echo 等待容器启动...
timeout /t 5 /nobreak >nul

REM 检查容器状态
docker ps | findstr jshERP-web >nul
if %errorlevel% equ 0 (
    echo ========================================
    echo 部署成功！
    echo ========================================
    echo 容器状态:
    docker ps | findstr jshERP-web
    echo.
    if "%ENV%"=="prod" (
        echo 访问地址: http://localhost
    ) else (
        echo 访问地址: http://localhost:3000
    )
    echo.
    echo 查看日志: cd %SCRIPT_DIR% ^&^& docker-compose -f %COMPOSE_FILE% logs -f
    echo 停止服务: cd %SCRIPT_DIR% ^&^& docker-compose -f %COMPOSE_FILE% down
) else (
    echo 部署失败，请检查日志
    docker-compose -f %COMPOSE_FILE% logs
    pause
    exit /b 1
)

pause

